#include<bits/stdc++.h>
using namespace std;

int n, num=0, k1=0, k2=0, flag=0;
int a[30][30], s[500], vis[25][25];
int _x[4] = {0, 1, 0, -1};
int _y[4] = {1, 0, -1, 0};


void dfs(int x, int y, int k)
{
	if( x<1 || x>n || y<1 || y>n)
		return;
	if(a[x][0]<0 || a[0][y]<0 || flag==1)
		return;
	
	s[k] = (x-1) * n + (y-1);
	
	if(x==n && y==n && k1==1 && k2==1)
	{
		flag = 1;
		num = k;
		return;
	}
	for(int i=0; i<4; i++)
	{
		int xx = x + _x[i];
		int yy = y + _y[i];
		if(vis[xx][yy] == 1)
			continue;
		a[xx][0]--;
		a[0][yy]--;
		k1--, k2--;
		vis[xx][yy] = 1;
		dfs(xx, yy, k+1);
		a[xx][0]++;
		a[0][yy]++;
		k1++, k2++;
		vis[xx][yy] = 0;		
	}
	
}

int main()
{
	cin >> n;
	int x = 0;
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=n; j++)
		{
			a[i][j] = x;
			x++; 
		}
	}
	for(int j=1; j<=n; j++)
	{
		cin >> a[0][j];
		k1 += a[0][j];
	}
	for(int i=1; i<=n; i++)
	{
		cin >> a[i][0];
		k2 += a[i][0];
	}
	
	dfs(1, 1, 1);
	
	for(int i=1; i<=num; i++)
	{
		cout << s[i] << " ";
	}
	return 0;
}